import Foundation

/// 盒子模型，代表一个独立的DNF账号环境
struct Box: Identifiable, Codable {
    let id: UUID
    var name: String
    var createdAt: Date
    var isDefault: Bool
    var lastUsed: Date
    
    /// 关联的认证信息（不直接存储，通过Keychain管理）
    var hasAuthInfo: Bool = false
    
    init(id: UUID = UUID(), name: String, createdAt: Date = Date(), isDefault: Bool = false) {
        self.id = id
        self.name = name
        self.createdAt = createdAt
        self.isDefault = isDefault
        self.lastUsed = createdAt
    }
    
    /// 更新最后使用时间
    mutating func updateLastUsed() {
        self.lastUsed = Date()
    }
}

// MARK: - 默认盒子

extension Box {
    /// 创建默认盒子 - 应用自带名为"主号盒子"的默认盒子，可重命名，不可删除
    static func defaultBox() -> Box {
        return Box(name: "主号盒子", isDefault: true)
    }
    
    /// 检查盒子是否可删除（默认盒子不可删除）
    func canBeDeleted() -> Bool {
        return !isDefault
    }
}

// MARK: - 示例数据

extension Box {
    static let sampleBoxes: [Box] = [
        Box(name: "主号盒子", isDefault: true),
        Box(name: "小号一号", createdAt: Date().addingTimeInterval(-86400)),
        Box(name: "搬砖专用", createdAt: Date().addingTimeInterval(-172800))
    ]
}